package com.quanyan.place.service;

import com.quanyan.api.APIResponse;
import com.quanyan.orderpay.response.RespPreOrder;
import com.quanyan.place.entity.TbBizPlaceMemberCard;
import com.quanyan.place.entity.apireq.*;
import com.quanyan.place.entity.apiresp.RespPlaceTicketInfo;

import java.util.List;

/**
 * Created by zhaohui on 2016/10/12.
 */
public interface ApiPlaceTicketService {
    APIResponse<RespPlaceTicketInfo> placeTicketInfo(ReqPlaceTicketInfo reqPlaceTicketInfo);
    /**
     * 获取用户场馆的会员卡信息
     * @param uid
     * @param placeId
     * @param categoryId
     * @return
     */
    List<TbBizPlaceMemberCard> getPlaceMemberInfo(Integer uid, Integer placeId,Integer categoryId,String cardNo);

    /**
     * 卡支付
     * @param reqPlaceTicketInfo
     * @return
     */
    APIResponse<RespPreOrder> cardPay(ReqPlaceTicketInfo reqPlaceTicketInfo);

    /**
     * 微信及支付宝支付
     * @param reqPlaceTicketInfo
     * @return
     */
    APIResponse<RespPreOrder> pay(ReqPlaceTicketInfo reqPlaceTicketInfo);


    /**
     * 再次支付
     * @param reqOrderPay
     * @return
     */
    APIResponse<RespPreOrder> ticketOrderPay(ReqOrderPay reqOrderPay);

    /**
     * 取消订单
     * @param reqOrderOperate
     * @return
     */
    APIResponse<?> orderCancelOperate(ReqOrderOperate reqOrderOperate);

    /**
     * 门票调用微信生成二维码
     * @param reqQRCode
     * @return
     */
    String ticketQRCodeCreate(ReqQRCode reqQRCode);

    /**
     * 订单生成流水
     * @param orderOperate
     */
    void orderCallBackHistory(ReqOrderOperate orderOperate);

}
